The invention relates to an apparatus and a method for selecting a subset of satellites to use for locating a Global Navigation Satellite System (GNSS) receiver.
The Global Positioning System (GPS) is an example of a GNSS navigation system in which a receiver determines its position by precisely measuring the arrival time of signalling events received from multiple satellites. Each satellite transmits a navigation message containing the precise time when the message was transmitted and ephemeris information. Each sub-frame of the navigation message starts with a telemetry word (TLM) and the number of the sub-frame. The start of the sub-frame may be detected by means of a preamble sequence in the TLM. Each sub-frame also includes a handover word (HOW), which gives the exact time of the week (TOW) when the satellite will transmit the next sub-frame according to the local version of GPS time held by the satellite's clock. The ephemeris information includes details about the satellite's orbit and corrections for the satellite's own clock, in comparison with GPS time. The ephemeris and clock correction parameters may collectively be known as ephemeris information.
GPS signals are formed of a navigation message binary phase shift modulated (BPSK) onto a direct sequence spread spectrum signal. The spread spectrum signal comprises a unique pseudo-noise (PN) code that identifies the satellite. For civil application GPS signals transmitted using the L1 frequency, this code is known as the C/A code. The C/A code has a sequence length of 1023 chips and it is spread with a 1.023 MHz chipping rate. The code sequence therefore repeats every millisecond. The code sequence has an identified start instant when the two code generators in the satellite just transition to the all ‘1's’ state. This instant is known as the code epoch. After various transport delays in the satellite, the code epoch is broadcast through the timing and sequence of specific code states assigned to the satellite. This signalling event can be recognised, in suitably adapted receivers, through a process of aligning a replica code with the code received from each satellite.
The navigation message has a data rate of 50 bits per second, lower than the code rate, and its data bit or symbol transitions are synchronised with the start of the C/A code sequence. Each bit of the navigation message lasts for 20 milliseconds and thus incorporates 20 repetitions of the C/A code. The navigation message is constructed from a 1500-bit frame consisting of five 300-bit sub-frames. Each sub-frame lasts for 6 seconds. The satellite transmits the navigation message and C/A code using a carrier frequency that is an integer multiple of 10.23 MHz (for the L1 carrier, the multiple is 154).
In addition to the time and ephemeris information, the data message also contains the satellite constellation almanac, parameters representing the ionospheric and tropospheric delay, health parameters and other information used by some receivers. There are 25 different frames of data broadcast from each satellite. Each frame contains identical information (apart from time) in sub-frames 1-3 inclusive but cycles through a pre-assigned sequence of data in sub-frames 4 and 5, which contain almanac and other information. The ephemeris information, including the satellite clock biases, is periodically refreshed by the GPS Control Segment, typically every 2 hours, so that the navigation data message is representative of the orbit and status of each satellite. There are indicators in the navigation message which provide the user with knowledge of when the ephemeris and clock data has been changed. Details of these changes are set out in the GPS interface standard, IS GPS 200.
As mentioned above, a GPS receiver may determine the time-of-arrival of a signalling event through a process of aligning a replica code with the code received from each satellite. The receiver may also use the TOW information contained in the navigation message to determine the time when the signalling event was transmitted. From this, the receiver can determine the transit time for the signalling event (from which it can determine the distance between it and the satellite), together with the position of the satellite at the time when the signalling event was transmitted (using the ephemeris information). The receiver can then calculate its own position. Theoretically, the position of the GPS receiver can be determined using signals from three satellites, providing the receiver has a precise time or knowledge of part of the positions, such as altitude. However, in practice GPS receivers use signals from four or more satellites to determine an accurate three-dimensional location solution because an offset between the receiver clock and GPS time introduces an additional unknown into the calculation.
If the satellite signal reception is poor (commonly known as weak signal conditions), or if the receiver only receives a short burst of the signal, the receiver may not be able to decode the TOW information. Without this information, the GPS receiver may be unable to determine the distance between it and the satellite with sufficient accuracy because the receiver will not know the time when the signalling event was transmitted. Under weak signal conditions or briefly glimpsed signals, the receiver may also be unable to recognise the start of a sub-frame since it may not be able to decode the TLM.
A receiver that has been unable to decode the TLM and TOW information in the navigation message may nonetheless be able to deduce some timing information even under weak signal conditions or from briefly-glimpsed signals. For example, the receiver may be able to determine a time shift between the satellite signal's spreading (PN) code and a locally generated version of the same, e.g. by correlating the received signal with a locally generated replica of the PN code or by using an equivalent signal processing technique. This time shift represents at least part of the transit time for the satellite signal. However, since both the PN code in the signal and the locally generated replica code are of finite length in space (known as the code wavelength), the correlation operation can only identify a part of the total time shift. This part of the total time shift represents a fractional part of the signal transit time between satellite and the receiver, measured in code repetition intervals. The integer number of code repetition intervals the signal took to travel between the satellite and the receiver cannot be measured by the receiver.
In order to compute its position accurately, the receiver also needs to be able to resolve discrepancies between the various clocks in the system. GPS time is defined by an ensemble of clocks generally located at the US Naval Observatory in Washington. Each satellite has its own operating clock (usually one of three on board the space vehicle), which is approximately synchronised with GPS time. In practice, however, the satellite clock is offset from GPS time by a small amount. The receiver clock is also likely to be offset from GPS time, at least prior to an initial location solution. Uncorrected, these clock biases introduce significant errors into the location calculation.
“GPS Receiver Structures for the Urban Canyon” by Peterson et al. presents a method for computing the position of a GPS receiver in a deep urban canyon, in which the receiver may obtain brief glimpses of satellites but rarely sees three or more satellites simultaneously. The method addresses the problem of having an unknown common system time by expanding the location calculation to encompass an additional satellite range measurement and an additional unknown parameter termed “coarse time”. The Peterson paper thus proposes a solution in which signals from five satellites are required for a 3D-location solution.
“Fast Acquisition Techniques for GPS Receivers” by Lannelongue et al. also presents a method for computing the position of a GPS receiver in which the common system time is unknown.
The integer millisecond ambiguity is also addressed by U.S. Pat. No. 6,417,801, which describes a way of estimating the integer milliseconds by calculating the geometric pseudo-range of the receiver to the satellite. The geometric pseudo-range is calculated using an estimated position of the GPS receiver and the position of the satellite at an estimated GPS time. U.S. Pat. No. 6,417,801 estimates the number of integer milliseconds that the signal took to travel between the satellite and the GPS receiver from the estimated pseudo-range and adds this to a measured, sub-millisecond pseudo-range to obtain a ‘full’ pseudo-range. The full pseudo-ranges from five satellites are then used to calculate the location of the GPS receiver. This technique is also described in “A-GPS: Assisted GPS, GNSS and SBAS 72” by Frank Van Diggelen (see chapter 4).
Mathematical techniques may be used to change the unknowns output by the location calculation. For example, U.S. Pat. No. 7,064,709 explains that calculating the integer number of milliseconds using estimated pseudo-ranges is not always sufficiently accurate and instead proposes a method whereby a common transit delay, represented as an number of integer milliseconds, is inserted as one of the unknowns to be determined as part of the location calculation. U.S. Pat. No. 7,064,709 also proposes that differences may be used to create four equations and four unknowns from the five equations using satellite measurements.
U.S. Pat. No. 6,191,731 also describes making five range measurements to five satellites and solving the five resulting equations by weighting and subtracting one from the four others in order to eliminate one of the unknown terms. This is a purely mathematical procedure which, in this example, cancels the user clock error term from the five linearized position equations.
These techniques are similar to the differencing methods used in some land survey implementations in which GPS time is known. Signals from two different satellites are differenced at one receiver and that difference is then subtracted from a similar difference calculated at another receiver. This double-difference technique allows unknowns such as the satellite and receiver clock errors to be eliminated from the calculation. These techniques are generally operative only within a zone where the location solution converges with a low error.
Another method is the so-called ‘Single-Difference’ method in which one of the satellites is designated as a reference satellite. The estimated distances and transit times for the other four satellites are then compared with the equivalent values for the reference satellite. This has two advantages: first, it addresses the issue of integer ambiguity in the measured times-of-arrival; and second, it removes the receiver clock bias as an unknown at the instant of measurement, as the arrival of each signalling event is measured with reference to the arrival of the signalling event from the reference satellite. In this way, the receiver clock bias does not contaminate the measurements and does not enter into the location calculations. The receiver clock is used, however, to provide a timescale for measuring the time differences between the arrival times of the various signalling events.
The methods described above have in common the step of estimating the location of the receiver and the absolute time of transmission of the satellite signals prior to computing the location of the receiver. These initial estimates of receiver location and absolute time will usually incorporate some error, which the location algorithm needs to be able to tolerate if it is to converge on correct values for the receiver location and absolute time. Therefore, there is a need for an apparatus and method for conditioning the location calculation in such a way as to maximise a likelihood that the algorithm will converge on the correct receiver location.